// 单例模式  --- 在一个类只能有一个实例，即使多次实例化该类，也只返回第一次实例化后的实例对象。单例模式不仅能减少不必要的内存开销, 并且在减少全局的函数和变量冲突也具有重要的意义。

let CreateSingleton = (function(){
  let instance;
  return function(name) {
    if (instance) {
      return instance;
    }
    this.name = name;
    return instance = this;
  }
 })();

 CreateSingleton.prototype.getName = function() {
  console.log(this.name);
 }


//  测试
let Winner = new CreateSingleton('Winner')
let Looser = new CreateSingleton('Looser')
console.log(Winner === Looser)  // true
Winner.getName()  // Winner
Looser.getName()  // Winner